package com.merybere.apps.ejercicio_rss; import data.RSSInterface; import android.os.Bundle; import android.os.CountDownTimer; import android.os.Handler; import android.os.ResultReceiver; import android.app.Activity; import android.content.Intent; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import app.AppIntent; public class SplashActivity extends Activity { private View titulo; private CountDownTimer timer = null; // Objeto parcelable, que pasaremos en el intent MyResultReceiver resultReceiver = new MyResultReceiver(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.splash); // Servicio de carga de art�culos final Intent feedService = AppIntent.getFeedIntent(); // ResultReceiver feedService.putExtra(RSSInterface.INTENT_RESULTRECEIVER, resultReceiver); startService(feedService); // Cachear el objeto t�tulo clickable titulo = findViewById(R.id.titulo); // Listener para responder al evento click titulo.setOnClickListener(new OnClickListener() { public void onClick(View view) { nextActivity(); } }); } @Override protected void onPause() { super.onPause(); if(null != timer) { timer.cancel(); timer = null; } } @Override protected void onResume() { super.onResume(); // Contador a 10 segundos timer = new SplashTimer(RSSInterface.SPLASH_TIMER, RSSInterface.SPLASH_TIMER); timer.start(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.splash, menu); return true; } private void nextActivity() { // Mensajero (se crea el mensaje que se va a pasar) final Intent intent = AppIntent.getArticleListIntent(); startActivity(intent); } //Timer Class inside my Activity class SplashTimer extends CountDownTimer{ public SplashTimer(long millisInFuture, long countDownInterval) { super(millisInFuture, countDownInterval); } @Override public void onFinish() { nextActivity(); } @Override public void onTick(long millisUntilFinished) { } } // Clase que android utiliza internamente para enviar y recibir resultados class MyResultReceiver extends ResultReceiver { private static final String TAG = "MyResultReceiver"; // Constructor: pide un handler, para comunicar desde hilos secundarios al hilo principal public MyResultReceiver() { super(new Handler()); } // resultCode es un resultado num�rico con el que interactuamos (id del estado) // resultData nos podr�a pasar otros datos extra @Override protected void onReceiveResult(int resultCode, Bundle resultData) { Log.d(TAG, "onReceiveResult"); super.onReceiveResult(resultCode, resultData); // Mostrar y ocultar la barra de progreso al recibir el c�digo correspondiente switch (resultCode) { case RSSInterface.CODE_END_TASK: // Lanzar la siguiente actividad cuando acaba la tarea nextActivity(); break; default: break; } } } }